package main

import (
	"fmt"
	"strconv"
	"sync"
)

// 建议使用 defer 去做资源清理工作，比如文件，锁等。
func main() {
	var p Uber04
	fmt.Println("+++++++ count:" + strconv.Itoa(p.Get()))
	fmt.Println("+++++++ count:" + strconv.Itoa(p.count))
}

type Uber04 struct {
	sync.Mutex
	count int
}

func (p *Uber04) Get() int {
	p.Lock()
	defer p.Unlock()

	if p.count > 10 {
		return p.count
	}
	p.count++
	return p.count
}
